1 <?php
2 session_start(); // Use session variable on this page. This function must put on the top of page.
3 if(!isset($_SESSION['username']) || $_SESSION['usertype'] !='admin'){ // if session variable "username" does not exist.
4 header("location:index.php?msg=Please%20login%20to%20access%20admin%20area%20!"); // Re-direct to index.php
5 }
6 else
7 {
8 include_once "db.php";
9 error_reporting (E_ALL ^ E_NOTICE);
10
11 ?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
12 "http://www.w3.org/TR/html4/loose.dtd">
13 <html>
14 <head>
15 <title>Welcome to Stock Management System !</title>
16 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
17 <link rel="stylesheet" href="css/validationEngine.jquery.css" type="text/css" media="screen" title="no title" charset="utf-8" />
18 <link rel="stylesheet" href="css/template.css" type="text/css" media="screen" title="no title" charset="utf-8" />
19 <script src="js/jquery.min.js" type="text/javascript"></script>
20 <script type="text/javascript" src="jquery.date_input.js"></script>
21 <link rel="stylesheet" href="date_input.css" type="text/css">
22 <script type="text/javascript">$(function() {
23 $("#datefield").date_input();
24 });</script>
25
26 <script type='text/javascript' src='lib/jquery.bgiframe.min.js'></script>
27 <script type='text/javascript' src='lib/jquery.ajaxQueue.js'></script>
28 <script type='text/javascript' src='lib/thickbox-compressed.js'></script>
29 <script type='text/javascript' src='jquery.autocomplete.js'></script>
30
31 <script type='text/javascript' src='localdata.js'></script>
32
33 <link rel="stylesheet" type="text/css" href="jquery.autocomplete.css" />
34 <link rel="stylesheet" type="text/css" href="lib/thickbox.css" />
35
36 <script type="text/javascript">
37 $().ready(function() {
38
39 function log(event, data, formatted) {
40 $("<li>").html( !data ? "No match!" : "Selected: " + formatted).appendTo("#result");
41 }
42
43 function formatItem(row) {
44 return row[0] + " (<strong>id: " + row[1] + "</strong>)";
45 }
46 function formatResult(row) {
47 return row[0].replace(/(<.+?>)/gi, '');
48 }
49
50
51
52 $("#singleBirdRemote").autocomplete("stock.php", {
53 width: 160,
54 autoFill: true,
55 mustMatch: true,
56 selectFirst: false
57 });
58
59 $("#customer").autocomplete("customer.php", {
60 width: 160,
61 autoFill: true,
62 selectFirst: false
63 });
64
65
66 $("#clear").click(function() {
67 $(":input").unautocomplete();
68 });
69 });
70
71
72 </script>
73
74 <script src="js/jquery.validationEngine-en.js" type="text/javascript"></script>
75 <script src="js/jquery.validationEngine.js" type="text/javascript"></script>
76 <script src="js/jquery.hotkeys-0.7.9.js"></script>
77 <!-- AJAX SUCCESS TEST FONCTION
78 <script>function callSuccessFunction(){alert("success executed")}
79 function callFailFunction(){alert("fail executed")}
80 </script>
81 -->
82
83 <script>
84
85
86
87
88
89 $(document).ready(function() {
90 // SUCCESS AJAX CALL, replace "success: false," by: success : function() { callSuccessFunction() },
91 $("#singleBirdRemote").focus();
92 $("#singleBirdRemote").blur(function()
93 {
94
95 $.post('check_sales_details.php', {stock_name: $(this).val() },
96 function(data){
97
98 $("#rate").val(data.rate);
99 $("#availstock").val(data.availstock);
100 $("#quantity").focus();
101 }, 'json');
102
103
104
105
106
107 });
108
109
110 $("#quantity").keyup(function (e) {
111
112 $("#total").val( parseInt( $("#quantity").val()) * parseInt( $("#rate").val() ));
113 if(parseInt($("#quantity").val()) > parseInt($("#availstock").val()))
114 $("#quantity").val(parseInt($("#availstock").val()));
115
116 });
117
118 $("#rate").keyup(function (e) {
119
120 $("#total").val( parseInt($("#quantity").val()) * parseInt($("#rate").val()) );
121 if(parseInt($("#quantity").val()) > parseInt($("#availstock").val()))
122 $("#quantity").val(parseInt($("#availstock").val()));
123
124 });
125
126
127 $("#customer").blur(function()
128 {
129
130 $.post('check_customer_details.php', {stock_name1: $(this).val() },
131 function(data){
132
133 $("#address").val(data.address);
134 $("#contact1").val(data.contact1);
135 $("#contact2").val(data.contact2);
136
137 }, 'json');
138
139
140
141
142
143 });
144 $("#form1").validationEngine(),
145
146 jQuery(document).bind('keydown', 'Ctrl+s',function() {
147 $('#form1').submit();
148 return false;
149 });
150
151 jQuery(document).bind('keydown', 'Ctrl+r',function() {
152 $('#form1').reset();
153 return false;
154 });
155 jQuery(document).bind('keydown', 'Ctrl+a',function() {
156 window.location = "addstock.php";
157 return false;
158 });
159 jQuery(document).bind('keydown', 'Ctrl+0',function() {
160 window.location = "admin.php";
161 return false;
162 });
163 jQuery(document).bind('keydown', 'Ctrl+1',function() {
164 window.location = "add_purchase.php";
165 return false;
166 });
167 jQuery(document).bind('keydown', 'Ctrl+2',function() {
168 window.location = "add_stock_sales.php";
169 return false;
170 });
171 jQuery(document).bind('keydown', 'Ctrl+3',function() {
172 window.location = "add_stock_details.php";
173 return false;
174 });
175 jQuery(document).bind('keydown', 'Ctrl+4',function() {
176 window.location = "add_category.php";
177 return false;
178 });
179 jQuery(document).bind('keydown', 'Ctrl+5',function() {
180 window.location = "add_supplier_details.php";
181 return false;
182 });
183 jQuery(document).bind('keydown', 'Ctrl+6',function() {
184 window.location = "add_customer_details.php";
185 return false;
186 });
187 jQuery(document).bind('keydown', 'Ctrl+7',function() {
188 window.location = "view_stock_entries.php";
189 return false;
190 });
191 jQuery(document).bind('keydown', 'Ctrl+8',function() {
192 window.location = "view_stock_sales.php";
193 return false;
194 });
195 jQuery(document).bind('keydown', 'Ctrl+9',function() {
196 window.location = "view_stock_details.php";
197 return false;
198 });
199 //$.validationEngine.loadValidation("#date")
200 //alert($("#formID").validationEngine({returnIsValid:true}))
201 //$.validationEngine.buildPrompt("#date","This is an example","error") // Exterior prompt build example // input prompt close example
202 //$.validationEngine.closePrompt(".formError",true) // CLOSE ALL OPEN PROMPTS
203 });
204 </script>
205 <style type="text/css">
206 <!--
207 body {
208 margin-left: 0px;
209 margin-top: 0px;
210 margin-right: 0px;
211 margin-bottom: 0px;
212 background-color: #FFFFFF;
213 }
214
215 *{
216 padding: 0px;
217 margin: 0px;
218 }
219 #vertmenu {
220 font-family: Verdana, Arial, Helvetica, sans-serif;
221 font-size: 100%;
222 width: 160px;
223 padding: 0px;
224 margin: 0px;
225 }
226
227 #vertmenu h1 {
228 display: block;
229 background-color:#FF9900;
230 font-size: 90%;
231 padding: 3px 0 5px 3px;
232 border: 1px solid #000000;
233 color: #333333;
234 margin: 0px;
235 width:159px;
236 }
237
238 #vertmenu ul {
239 list-style: none;
240 margin: 0px;
241 padding: 0px;
242 border: none;
243 }
244 #vertmenu ul li {
245 margin: 0px;
246 padding: 0px;
247 }
248 #vertmenu ul li a {
249 font-size: 80%;
250 display: block;
251 border-bottom: 1px dashed #C39C4E;
252 padding: 5px 0px 2px 4px;
253 text-decoration: none;
254 color: #666666;
255 width:160px;
256 }
257
258 #vertmenu ul li a:hover, #vertmenu ul li a:focus {
259 color: #000000;
260 background-color: #eeeeee;
261 }
262 .style1 {color: #000000}
263 div.pagination {
264
265 padding: 3px;
266
267 margin: 3px;
268
269 }
270
271
272
273 div.pagination a {
274
275 padding: 2px 5px 2px 5px;
276
277 margin: 2px;
278
279 border: 1px solid #AAAADD;
280
281
282
283 text-decoration: none; /* no underline */
284
285 color: #000099;
286
287 }
288
289 div.pagination a:hover, div.pagination a:active {
290
291 border: 1px solid #000099;
292
293
294
295 color: #000;
296
297 }
298
299 div.pagination span.current {
300
301 padding: 2px 5px 2px 5px;
302
303 margin: 2px;
304
305 border: 1px solid #000099;
306
307
308
309 font-weight: bold;
310
311 background-color: #000099;
312
313 color: #FFF;
314
315 }
316
317 div.pagination span.disabled {
318
319 padding: 2px 5px 2px 5px;
320
321 margin: 2px;
322
323 border: 1px solid #EEE;
324
325
326
327 color: #DDD;
328
329 }
330
331
332 -->
333 </style>
334 </head>
335
336 <body>
337 <table width="100%" border="0" cellspacing="0" cellpadding="0">
338 <tr>
339 <td align="center" valign="top"><table width="960" border="0" cellspacing="0" cellpadding="0">
340 <tr>
341 <td><table width="960" border="0" cellpadding="0" cellspacing="0" bgcolor="#ECECEC">
342 <tr>
343 <td height="90" align="left" valign="top"><img src="images/topbanner.jpg" width="960" height="82"></td>
344 </tr>
345 <tr>
346 <td height="800" align="left" valign="top"><table width="960" border="0" cellpadding="0" cellspacing="0" bgcolor="#ECECEC">
347 <tr>
348 <td width="130" align="left" valign="top">
349
350 <br>
351
352 <strong>Welcome <font color="#3399FF"><?php echo $_SESSION['username']; ?> !</font></strong><br> <br>
353 <table width="100%" border="0" cellspacing="0" cellpadding="0">
354 <tr>
355 <td align="center"><a href="admin.php"><img src="images/home.png" width="130" height="99" border="0"></a></td>
356 </tr>
357 <tr>
358 <td align="center"> </td>
359 </tr>
360 <tr>
361 <td align="center"><a href="add_purchase.php"><img src="images/purchase.png" width="130" height="124" border="0"></a></td>
362 </tr>
363 <tr>
364 <td align="center"> </td>
365 </tr>
366 <tr>
367 <td align="center"><a href="add_stock_sales.php"><img src="images/sales.png" width="146" height="111" border="0"></a></td>
368 </tr>
369 <tr>
370 <td align="center"> </td>
371 </tr>
372 <tr>
373 <td align="center"><a href="report.php"><img src="images/reports.png" width="131" height="142" border="0"></a></td>
374 </tr>
375 <tr>
376 <td align="center"> </td>
377 </tr>
378 <tr>
379 <td align="center"> </td>
380 </tr>
381 <tr>
382 <td align="center"> </td>
383 </tr>
384 </table>
385
386
387
388
389
390 </td> <td height="500" align="center" valign="top">
391 <table width="100%" border="0" cellspacing="0" cellpadding="0">
392 <tr>
393 <td><a href="add_stock_details.php"><img src="images/addstockdetails.png" width="67" height="62" border="0"></a></td>
394 <td><a href="add_supplier_details.php"><img src="images/supplier.png" width="67" height="54" border="0"></a></td>
395 <td><a href="add_customer_details.php"><img src="images/customer.png" width="67" height="54" border="0"></a></td>
396 <td><a href="add_category.php"><img src="images/categories.png" width="67" height="54" border="0"></a></td>
397 <td><a href="view_stock_sales.php"><img src="images/vsales.png" width="67" height="54" border="0"></a></td>
398 <td><a href="view_stock_entries.php"><img src="images/vpurchase.png" width="67" height="54" border="0"></a></td>
399 <td><a href="view_stock_details.php"><img src="images/stockdetails.png" width="67" height="54" border="0"></a></td>
400 <td><a href="view_stock_availability.php"><img src="images/savail.png" width="67" height="54" border="0"></a></td>
401 <td align="left" valign="top"><a href="view_customer_details.php"><img src="images/customers.png" width="94" height="22" border="0"></a><br> <a href="view_supplier_details.php"><img src="images/suppliers.png" width="94" height="22" border="0"></a><br>
402 <a href="view_payments.php"><img src="images/payments.png" width="94" height="22" border="0"></a></td>
403 <td align="left" valign="top"><a href="view_stock_sales_payments.php"><img src="images/outstanding.png" width="94" height="22" border="0"></a><br> <a href="view_stock_entries_payments.php"><img src="images/pendings.png" width="94" height="22" border="0"></a><br>
404 <a href="logout.php"><img src="images/logout.png" width="94" height="22" border="0"></a></td>
405 </tr>
406 </table>
407 <?php
408 if(isset($_POST['name1']))
409
410 {
411
412 $name1=mysql_real_escape_string($_POST['name1']);
413 $rate=mysql_real_escape_string($_POST['rate1']);
414 $quantity=mysql_real_escape_string($_POST['quantity1']);
415 $customer=mysql_real_escape_string($_POST['customer1']);
416 $address=mysql_real_escape_string($_POST['address1']);
417 $contact1=mysql_real_escape_string($_POST['contact1']);
418 $contact2=mysql_real_escape_string($_POST['contact2']);
419 $total=mysql_real_escape_string($_POST['total']);
420 $username=$_SESSION['username'];
421
422 $count = $db->countOf("stock_avail", "name='$name1'");
423 $selected_date=$_POST['date'];
424 $selected_date=strtotime( $selected_date );
425 $mysqldate = date( 'Y-m-d H:i:s', $selected_date );
426 $username = $_SESSION['username'];
427
428 if($count==1)
429 {
430
431 $max = $db->maxOfAll("id", "stock_sales");
432 $max=$max+1;
433 $autoid="SA".$max."";
434
435 $db->query("insert into stock_sales (transactionid,stock_name,selling_price,quantity,amount,date,username,customer_id) values(' $autoid','$name1',$rate,$quantity,$total,'$mysqldate','$username','$customer')");
436 echo "<br><font color=green size=+1 >New Sales Added ! Transaction ID [ $autoid ]</font>" ;
437
438
439 $amount = $db->queryUniqueValue("SELECT quantity FROM stock_avail WHERE name='$name1'");
440 $amount1 = $amount - $quantity;
441 $db->execute("UPDATE stock_avail SET quantity=$amount1 WHERE name='$name1'");
442 echo "<br><font color=green size=+1> Current Stock Availability is [ $amount1 ]</font>" ;
443 $count1 = $db->countOf("customer_details", "customer_name='$customer'");
444 if($count!=1)
445 {
446 if($db->query("insert into customer_details values(NULL,'$customer','$address','$contact1','$contact2')"))
447 echo "<br><font color=green size=+1 > [ $name ] Customer Details Updated !</font>" ;
448 }
449 }
450 else
451 {
452 echo "<br><font color=green size=+1 >Stock Not Available!</font>" ;
453 }
454
455
456 }
457 if(isset($_GET['id']))
458 {
459
460 $id=$_GET['id'];
461
462
463 $line = $db->queryUniqueObject("SELECT * FROM stock_entries WHERE id=$id");
464 ?>
465
466
467
468 <br>
469 <br>
470
471
472 <form name="form1" method="post" id="form1" action="">
473
474 <p align="center"><strong>Update Sales Entry </strong> - Add New ( Control +A)</p>
475 <table width="600" border="0" cellspacing="0" cellpadding="0">
476 <tr>
477 <td width="150"> </td>
478 <td width="165"> </td>
479 <td width="135"> </td>
480 <td width="150"> </td>
481 </tr>
482 <tr>
483 <td width="150"> </td>
484 <td width="165"> </td>
485 <td width="135"> </td>
486 <td width="150"> </td>
487 </tr>
488 <tr>
489 <td width="150">ID <?php
490 $max = $db->maxOfAll("id","stock_sales");
491 $max=$max+1;
492 $autoid="SA".$max."";
493 ?></td>
494 <td width="165"><input name="id" type="text" id="id" readonly="" value="<?php echo $autoid; ?>"></td>
495 <td width="135">Date</td>
496
497 <td width="150"> <input type="text" id="datefield" name="date" class="date_input" value="<?php echo date('d-m-Y');?>"></td>
498 </tr>
499 <tr>
500 <td width="150"> </td>
501 <td width="165"> </td>
502 <td width="135"> </td>
503 <td width="150"> </td>
504 </tr>
505 <tr>
506 <td width="150"><strong>Name</strong></td>
507 <td width="165"><input name="name1" type="text" id="singleBirdRemote" class="validate[required,length[0,100]] text-input"></td>
508 <td width="135">Available Stock </td>
509 <td width="150"><input name="availstock" type="text" id="availstock" readonly="" value=""></td>
510 </tr>
511 <tr>
512 <td width="150"> </td>
513 <td width="165"> </td>
514 <td width="135"> </td>
515 <td width="150"> </td>
516 </tr>
517 <tr>
518 <td><strong>Quantity</strong></td>
519 <td><input name="quantity1" type="text" id="quantity" class="validate[required,custom[onlyNumber],lengthCheck[6],confirmMatch[quantity]] text-input" ></td>
520 <td><strong>Rate:</strong></td>
521 <td><input name="rate1" type="text" id="rate" class="validate[required,custom[onlyNumber],lengthCheck[6]] text-input" ></td>
522 </tr>
523 <tr>
524 <td> </td>
525 <td> </td>
526 <td> </td>
527 <td> </td>
528 </tr>
529 <tr>
530 <td><strong>Customer</strong></td>
531 <td><input name="customer1" type="text" id="customer" value="" ></td>
532 <td>Address</td>
533 <td><textarea name="address1" id="address"></textarea></td>
534 </tr>
535 <tr>
536 <td> </td>
537 <td> </td>
538 <td> </td>
539 <td> </td>
540 </tr>
541 <tr>
542 <td>Contact1</td>
543 <td><input name="contact1" type="text" id="contact1" value="" ></td>
544 <td>Contact2</td>
545 <td><input name="contact2" type="text" id="contact2" value="" ></td>
546 </tr>
547 <tr>
548 <td> </td>
549 <td> </td>
550 <td> </td>
551 <td> </td>
552 </tr>
553 <tr>
554 <td> </td>
555 <td> </td>
556 <td> </td>
557 <td> </td>
558 </tr>
559 <tr>
560 <td> </td>
561 <td> </td>
562 <td><strong>Total:</strong></td>
563 <td><input name="total" type="text" id="total" readonly="" value=""></td>
564 </tr>
565 <tr>
566 <td> </td>
567 <td> </td>
568 <td> </td>
569 <td> </td>
570 </tr>
571 <tr>
572 <td align="right"> </td>
573 <td align="right"><input type="reset" name="Reset" value="Reset">
574 </td>
575 <td>
576 <input type="submit" name="Submit" value="Save"></td>
577 <td> </td>
578 </tr>
579 <tr>
580 <td align="center"> </td>
581 <td align="center"> (Control + R) </td>
582 <td align="left"> ( Control + S ) </td>
583 <td align="left"> </td>
584 </tr>
585 </table>
586 </form></td>
587 </tr>
588 </table>
589
590 </td>
591 </tr>
592 <tr>
593 <td height="30" align="center" bgcolor="#72C9F4"><span class="style1"><a href="http://www.pluskb.com">Developed by PlusKB Innovations</a></span></td>
594 </tr>
595 </table></td>
596 </tr>
597 </table></td>
598 </tr>
599 </table>
600
601 </body>
602 </html>
603 <?php
604 }
605 ?>